package com.farmer.auth.service;

import com.farmer.common.dto.LoginDTO;
import com.farmer.common.dto.RegisterDTO;
import com.farmer.common.result.Result;

/**
 * 认证服务接口
 */
public interface AuthService {

    /**
     * 用户登录
     * @param loginDTO 登录信息
     * @return 登录结果
     */
    Result<?> login(LoginDTO loginDTO);

    /**
     * 用户注册
     * @param registerDTO 注册信息
     * @return 注册结果
     */
    Result<?> register(RegisterDTO registerDTO);

    /**
     * 刷新Token
     * @param token 原Token
     * @return 新Token
     */
    Result<?> refreshToken(String token);

    /**
     * 用户登出
     * @param token 用户Token
     * @return 登出结果
     */
    Result<?> logout(String token);

    /**
     * 验证Token
     * @param token 用户Token
     * @return 验证结果
     */
    Result<?> validateToken(String token);

    /**
     * 重置管理员密码（仅用于测试）
     * @return 重置结果
     */
    Result<?> resetAdminPassword();
} 